﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;

namespace TobbPersonelWS
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]
    public class TobbPerWs : System.Web.Services.WebService
    {
        public class Sonuc{
            public int durum { get; set; }
            public string hata { get; set; }
        }
        public class yemekler
        {
            public int id { get; set; }
            public string yemekAdi { get; set; }
            public int? kalori { get; set; }
            public int tip {get; set; }
        }
        public class yemekArr
        {
            public List<yemekler> yemekListesi { get; set; }
        }
        public class YemekListesi
        {
            public int id { get; set; }
            public int? oy { get; set; }
            public String tarih { get; set; }
            public List<yemekArr> yemekler { get; set; }
            public Sonuc sonuc { get; set; }

        }

        [WebMethod]
        public YemekListesi gununYemegiGetir(String uid)
        {
            using(tobbPerDcDataContext dc = new tobbPerDcDataContext())
	        {
                try
                {

                
                var yl = from y in dc.Yemeklers
                         where y.Tarih.Date == DateTime.Now.Date
                         select new YemekListesi { id = y.ID, tarih = y.Tarih.ToShortDateString() };
                if (yl.Count() > 0)
                {
                    YemekListesi yemekDonus = yl.First();

                        var yem = from y in dc.YemekDetays
                                  where y.YemekID == yemekDonus.id
                                  orderby y.tip
                                  select new yemekler { id = y.ID, kalori = y.Kalori, yemekAdi = y.YemekAdi,tip = y.tip };
                        if (yem.Count() > 0)
                        {
                            List<yemekArr> yArr = new List<yemekArr>();
                            int[] grouped = yem.Select(t=>t.tip).Distinct().ToArray();
                            foreach (int i in grouped)
                            {
                                var yemeks = from y in yem
                                             where y.tip == i
                                             select y;
                                yemekArr ya = new yemekArr();
                                ya.yemekListesi = yemeks.ToList();
                                yArr.Add(ya);

                            }

                            yemekDonus.yemekler = yArr;
                        }
                        var oy = from o in dc.YemekOys
                                 where o.YemekID == yemekDonus.id && o.UID == uid
                                 select o;
                        if (oy.Count() > 0)
                        {
                            yemekDonus.oy = oy.First().Oy;
                        }
                        yemekDonus.sonuc = new Sonuc {durum=1,hata="" };
                        return yemekDonus;
                }
                else
                {
                    return new YemekListesi { sonuc = new Sonuc { durum = -1, hata = "Yok Kardeşim, Girilmemiş yemek listesi" } }; ;
                }
                }
                catch (Exception ex)
                {

                    return new YemekListesi { sonuc = new Sonuc { durum = -1, hata = ex.Message } };
                }
	        }
            

        }

        [WebMethod]          
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public Sonuc  OyVer(int YemekID,String uid,int oy)
        {
            using (tobbPerDcDataContext dc = new tobbPerDcDataContext())
            {
                try{
                YemekOy yo = new YemekOy();
                yo.Oy = oy;
                yo.UID = uid;
                yo.YemekID = YemekID;
                dc.YemekOys.InsertOnSubmit(yo);
                dc.SubmitChanges();
                return null;
                    }catch(Exception ex){
                        return new Sonuc {durum=-1,hata=ex.Message };
                    }
            }
        }
        [WebMethod]
        public Sonuc canDeneme()
        {
          
                    return new Sonuc { durum = -1, hata = ""};
             
        }
    }
}
